package com.atguigu.springcloud.controller;  
  
import com.atguigu.springcloud.service.PaymentService;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;  
import org.springframework.web.bind.annotation.PathVariable;  
import org.springframework.web.bind.annotation.RestController;  
import javax.annotation.Resource;  
  
@RestController  
@Slf4j  
public class PaymentController {  
  
    @Resource
    private PaymentService paymentService;
  
    @Value("${server.port}")  
    private String serverPort;  
  
    @GetMapping("/payment/hystrix/ok/{id}")  
    public String paymentInfo_OK(@PathVariable("id") Integer id){  
        String result = paymentService.paymentInfo_OK(id);  
        log.info("*******result:"+result);  
        return result;  
    }

    @GetMapping("/payment/hystrix/timeout/{id}")  
    public String paymentInfo_TimeOut(@PathVariable("id") Integer id){  
        String result = paymentService.payment_Timeout(id);  
        log.info("*******result:"+result);  
        return result;  
    }

    @GetMapping("/payment/hystrix/circuit/breaker/{id}")
    public String paymentCircuitBreaker(@PathVariable Integer id) {
        return paymentService.paymentCircuitBreaker(id);
    }
}